<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // <!-- ### 1. 整理以下数组方法，写出数组方法的解释，并使用 -->
      // <!-- > 1. reduce -->
      // <!-- > 2. filter -->
      // <!-- > 3. some -->
      // <!-- > 4. every -->
      // <!-- > 5. map -->
      // reduce方法   经常用来求和累计值   很重要
      let arr = [1, 3, , 45, 7, 68, 7, 97, 89]
      // 数组.reduce
      // arr.reduce(function(prev,item,index,o) {},初始值)
      // prev  累计值  相当于sum
      // 前面2个prev和item必须得有  后面的可以不写
      // 初始值可写可不写
      // 如果写了初始值，prev就=初始值 然后再开始
      // 如果不写初始值，prev就以第一个item为开始
      // 求个和
      const re = arr.reduce(function (prev, item) {
        console.log('a') //打印了8次a
        // 一定要加return
        return prev + item
      }, 0)
      console.log(re) //打印317
      //
      //
      //
      //
      const re1 = arr.reduce(function (prev, item) {
        console.log('a') //打印了7次a  因为prev=item =1
        // 一定要加return
        return prev + item
      })
      console.log(re1) //打印317
      //
      //
      //
      // 箭头高级写法
      const re2 = arr.reduce((prev, item) => prev + item, 0)
      console.log(re2) //打印317
    </script>
  </body>
</html>
